import flash.events.Event;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.utils.ObjectUtil;

private function findSearchQuery():void{
	// animate search
	setBusyState();
	if( search_compo.search_input.text.indexOf("s:") == 0){
		searchSimpleQuery(search_compo.search_input.text);
	}else{
		// search base
		kb.addEventListener(Event.COMPLETE,onKinobazaFound);
		kb.searchBase(search_compo.search_input.text);
	}
}

private function onKinobazaFound(e:Event):void{
	// remove listener
	kb.removeEventListener(Event.COMPLETE,onKinobazaFound);
	// remove loading 
	removeBusyState();
	
	// get results
	if(kb.seriesCollection.length > 0){
		search_compo.suggest_list.dataProvider = kb.seriesCollection;
		search_compo.currentState = 'Suggest';
	}else{
		searchSimpleQuery(search_compo.search_input.text);
	}
}

private function getInfo(e:Event):void{
	if(e.target != search_compo && e.currentTarget.selectedItem == null) return;
	// animate search
	setBusyState();
	// reset
	epSourceList = new ArrayCollection();
	// get info
	kb.addEventListener(Event.COMPLETE,onKinobazaInfo);
	if(e.target == search_compo){
		kb.getInfo(e.target.suggest_list.selectedItem.id);
	}else{
		kb.getInfo(e.currentTarget.selectedItem.id);
		e.currentTarget.selectedIndex = -1;
	}
}

private function onKinobazaInfo(e:Event):void{
	// remove listener
	kb.removeEventListener(Event.COMPLETE,onKinobazaInfo);
	
	if(kb.seriesInformation == null){
		Alert.show("Видимо что-то не так с кинобазой. Или вашим интернетом. Попробуйте позже", "Ошибка!");
		removeBusyState();
		return;
	}
	
	// change state
	currentState = "Series";
	
	// set info
	if(kb.seriesInformation.poster != "/img/default_poster.jpg"){
		seriesImage = kb.seriesInformation.poster;
	}else{
		seriesImage = "http://kinobaza.tv"+kb.seriesInformation.poster;
	}
	
	// set name
	seriesName = kb.seriesInformation.name; 
	if(String(kb.seriesInformation.original_name).length > 0){
		seriesName += " / "+kb.seriesInformation.original_name;
	}
	
	// set date
	seriesDate = kb.seriesInformation.year;
	
	// set generes
	seriesGenere = kb.seriesInformation.genres;
	
	// set country
	seriesCountry = kb.seriesInformation.countries;
	
	// rates
	seriesIMDB = kb.seriesInformation.imdb_rating + " из 10"; 
	seriesKinopoisk = kb.seriesInformation.kinopoisk_rating + " из 10";
	
	// description
	seriesDescr = kb.seriesInformation.description;
	
	// get seasons
	if(kb.seriesEpisodes != null && kb.seriesEpisodes.length > 0){
		// remove loading 
		removeBusyState();
		
		seasons_list.visible = true;
		seasons_caption.visible = true;
		seasons_bg.visible = true;
		series_list.visible = true;
		
		series_source_wnd.visible = false;
		series_source_wnd.x = 189;
		series_source_wnd.y = 285;
		series_source_wnd.width = 400;
		series_source_wnd.height = 265;
		source_close_btn.visible = true;
		
		var item:Object;
		var seasons:Array = new Array();
		for each(item in kb.seriesEpisodes){
			if(seasons.indexOf(item.season) < 0){
				seasons.push(item.season);
			}
		}
		
		// set seasons
		seasons.reverse();
		seasonsList = new ArrayCollection(seasons);
		seasons_list.selectedIndex = 0;
		
		// set series
		seriesList = kb.seriesEpisodes;
		filterSeries();
		
		/*
		[131] (Object)#134
		description = 
		id = 460808
		name = 
		number = 21
		original_name = Help Me
		season = "6"
		tvrage_id = 1064911751
		*/
		
		item = null;
		seasons = null;
	}else{
		seasons_list.visible = false;
		seasons_caption.visible = false;
		seasons_bg.visible = false;
		series_list.visible = false;
		
		series_source_wnd.visible = true;
		series_source_wnd.x = 10;
		series_source_wnd.y = 265;
		series_source_wnd.width = 780;
		series_source_wnd.height = 325;
		source_close_btn.visible = false;
		
		selectedEpisodeName = kb.seriesInformation.name;
		
		queryParts = new Array();
		queryParts['name'] = kb.seriesInformation.name;
		queryParts['ename'] = kb.seriesInformation.original_name;
		queryParts['len'] = 30;
		
		// hd
		findQuery(kb.seriesInformation.name, 50);
	}
	/*
	(Object)#0
	countries = США
	description = Сериал House, M.D. рассказывает о команде врачей, которые должны правильно поставить диагноз болезни пациента и спасти его. В принципе сериал представляет из себя вариацию схемы «врач как детектив», но в отличие от остальных сериалов, где врачи обследуют уже мертвого пациента, в House, M.D. больной находится еще в живых.&#xA;&#xA;Возглавляет команду доктор Грегори Хауз, который ходит с палочкой после того, как его мышечный инфаркт в правой ноге слишком поздно правильно диагностировали. Как врач Хауз просто гений, но сам не отличается проникновеннос��ью в общении с больными и с удовольствием избегает их, если только есть возможность. Он сам всё время проводит в борьбе с собственной болью, а трость в его руке только подчеркивает его жесткую ядовитую манеру общения. Порой его поведение можно назвать почти бесчеловечным, и при этом он прекрасный врач, обладаюший нетипичным умом и безупречным инстинктом, что снискало ему глубокое уважение. Будучи инфекционистом, он ещё и замечательный диагност, который любит разгадывать медицинские загадки, чтобы спасти кому-то жизнь. Если бы все было по его в��ле, то Хауз лечил бы больных не выходя из своего кабинета.
	genres = драма, детектив, мистика
	id = 17844
	imdb_id = 0412142
	imdb_rating = 9.3
	imdb_rating_voted = 448
	kinopoisk_id = 178710
	kinopoisk_rating = 9.115
	kinopoisk_rating_voted = 24116
	name = Доктор Хаус
	original_name = House, M.D.
	poster = http://s1.st.kinobaza.tv/posters/1/7/8/4/4/b727c603beff3838418bf753a098b714630533.207x.jpg
	tvcom_rating = 
	tvcom_rating_voted = 
	tvrage_id = 3908
	year = 2004
	*/
}